class Animal:
    def __init__(self, age):
        self.age = age
    def eat(self):
        print('animal在吃')
class Dog(Animal):#继承父类Animal的属性、方法（但当自身类内有init时会覆盖掉父类的init(属性)除非调用,但当自身的方法中有和父类相同的方法时此方法会覆盖掉父类的方法）
    def __init__(self,color,age):
        self.color = color
        super().__init__(age)#调用父类（Animal）的init（另外这种方式也可以调用父类的其它方法）
    def bark(self):
        print("dog在叫")
class XiaoTian(Dog):#此时Xiaotian类继承了Dog类的bark方法和Dog类继承于Animal类的eat方法
    def __init__(self,name,color,age):
        self.name=name
        super().__init__(color,age)#调用父类（Dog）的init
    def __str__(self):
        return f"{self.color}{self.name}犬{self.age}岁"
    def fly(self):
        print("xiaotian在飞")


xiaotianquan=XiaoTian("啸天","黑色",20)
print(xiaotianquan)
xiaotianquan.eat()
xiaotianquan.bark()
xiaotianquan.fly()
